﻿// <copyright file="ITimseriesRainFactory.cs" company="City of Portland, BES-ASM">
// </copyright>
// <summary>ITimseriesRainFactory interface</summary>

namespace BESASM.EMGAATS.BusinessClasses
{
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;

  /// <summary>
  /// Creates rainfall time series
  /// </summary>
  public interface ITimseriesRainFactory
  {
    /// <summary>
    /// Creates list of rainfall time series for actual storms based on virtual gages
    /// </summary>
    /// <param name="network">The network used to select virtual gages</param>
    /// <param name="descriptor">storm description that will be placed in the rain time series object</param>
    /// <param name="startdate">storm start</param>
    /// <param name="enddate">storm end</param>
    /// <param name="intervalSeconds">storm interval in seconds</param>
    /// <returns>List of rainfall time series</returns>
    List<ITimeseriesRain> CreateVirtualGageTimeseriesRainList(INetwork network, string descriptor, DateTime startdate, DateTime enddate, int intervalSeconds);

    /// <summary>
    /// Creates a time series for a synthetic storm.  Used for design storms.
    /// </summary>
    /// <param name="descriptor">Could be a unique Identifier for virtual storms</param>
    /// <returns>A rain time series object</returns>
    ITimeseriesRain CreateSyntheticTimeseriesRain(string descriptor);
  }
}
